An identification number (ID) is often desirable for many IC chips or electronic devices. Just like DNA, the ID number can uniquely identify an IC chip or an electronic device containing the IC chip and distinguish it from others, thereby improving recognizability and traceability of products. Moreover, the ID number may be used, for example, to label RFID tags, to generate public or private keys for encryption and decryption purposes, to provide authentication, to electronically secure electronic devices and combat IC piracy, to identify nodes on networks, and the like. Due to the diverse applications of the ID number, research on on-chip ID has been done with an aim to improve its reliability, stability and unclonability.
Traditional methods of providing an on-chip ID include using a non-volatile, programmable read-only memory (PROM) in the chip. During or after fabrication of the chip, the PROM may be programmed (burned) to store an ID number as well as other useful manufacturing data. The ID number may be customized to indicate some identity information about the chip, including but not limited to, production date and location code, a lot number, chip model, etc. The ID number may be read back and used for any purpose when the chip is powered on. While such a method can provide each chip with a customized ID number to uniquely identify the chip and provide further information about the chip, they require special processing steps when manufacturing the chip and thus incur additional cost and time expense. In addition, the ID number may be easily altered or cloned, so it is not good for key generation or similar security applications.
It has been proposed to generate a unique ID number by using Physically Unclonable Functions (PUFs). PUFs may be constructed in hardware, which exhibits minimum physical variations and parameter fluctuations as result of unpredictable stimulus applied in the manufacture thereof. PUFs are especially suitable for security applications, because they are easy to generate but practically, they are impossible to duplicate, even using the exact manufacturing process to produce them. A typical example of PUFs is SRAM (static random access memory) PUF. An SRAM cell may be designed to be balanced so that it has no preferred logic state when power is supplied thereto. Because of mismatch originating from fabrication process variations, each SRAM cell will assume a non-random logic state when power is supplied. Thus, an array of SRAM cells may provide a unique ID number.
A disadvantage of SRAM PUF is its insufficient stability. It is known that a focus of the modern technology is trying to fabricate identical/uniform elements or circuits to achieve identical/uniform performance. As a result, the process variations may be very small. On the other hand, noise from adjacent circuits or from external environment may have an impact on the output of the SRAM cells. Therefore, some of the SRAM cells may have random output, causing the generated ID number inconstant. This has become a serious obstacle that hinders SRAM PUF from being used in on-chip ID circuits.
In addition, the SRAM cells are typically formed together with one another as a macro block, and a dedicated read circuit is required to read out ID bits from the macro block. The layout designer has to assign an area on the die large enough to accommodate the macro block and the read circuit. Therefore, the SRAM PUF results in a significant decrease in layout flexibility and an increase in cost.
Advantageously, the present invention can provide a simple identification circuit which is stable and capable of generating a unique and non-alterable ID number. In some embodiments, the identification circuit may have a flexible layout, and it adds little cost to the manufacture process.